#pragma once

class DUI_API CTween
{
public:
	CTween(void);
	~CTween(void);

public:
	static double Linear( double t, double b, double c, double d );
	static double Quad( double t, double b, double c, double d, int iEaseType = 0 ); 
	static double Cubic( double t, double b, double c, double d, int iEaseType = 0 ); 
	static double Quart( double t, double b, double c, double d, int iEaseType = 0 );
	static double Quint( double t, double b, double c, double d, int iEaseType = 0 );
	static double Sine( double t, double b, double c, double d, int iEaseType = 0 );
	static double Expo( double t, double b, double c, double d, int iEaseType = 0 );
	static double Circ( double t, double b, double c, double d, int iEaseType = 0 );
	static double Elastic( double t, double b, double c, double d, double a, double p, int iEaseType = 0 );
	static double Back( double t, double b, double c, double d,  int iEaseType = 0, double s = 1.70158);
	static double Bounce( double t, double b, double c, double d, int iEaseType = 0 );

private:
	enum{ EASEIN, EASEOUT, EASEINOUT } eEaseType;
	static double BounceEaseIn( double t, double b, double c, double d );
	static double BounceEaseOut( double t, double b, double c, double d );
};
